package academicSupSession;

import java.rmi.RemoteException;

import javax.ejb.EJBObject;

import query.Query;

import academicSup.AcademicSup;
import descriptor.AcademicSupDescriptor;
import descriptor.DegreeListDescriptor;
import descriptor.QueryListDescriptor;
import descriptor.StudentListDescriptor;

/**
 * @author mathieu
 *
 */
public interface  AcademicSupSession extends  EJBObject {
	
	
	/**
	 * return the descriptor corresponding to this user
	 * @return the descriptor
	 * @throws RemoteException
	 */
	public AcademicSupDescriptor getDescriptor() throws RemoteException;
	
	
	/**
	 * return a Descriptorlist with a descriptor for all the student affiliated to this AcademicSupervisor
	 * @return the StudentListDescriptor
	 * @throws RemoteException
	 */
	public StudentListDescriptor getStudents() throws RemoteException;
	
	/**
	 * return a Descriptorlist with a descriptor for all the query made to this AcademicSupervisor
	 * @return the QueryListDescriptor
	 * @throws RemoteException
	 */
	public QueryListDescriptor getQueries() throws RemoteException;
	
	
	public int getId() throws RemoteException;
	public void setId(int id) throws RemoteException;
	
	public String getLogin() throws RemoteException;
	public void setLogin(String login) throws RemoteException;
	
	public String getPassword() throws RemoteException;
	public void setPassword(String password) throws RemoteException;
	
	public String getFirstname() throws RemoteException;
	public void setFirstname(String firstname) throws RemoteException;
	
	public String getSurname() throws RemoteException;
	public void setSurname(String surname) throws RemoteException;
	
	public String getEmail() throws RemoteException;
	public void setEmail(String email) throws RemoteException;
	
	public DegreeListDescriptor getDegrees() throws RemoteException;
	public void acceptQuery(int queryId) throws RemoteException;
	public void rejectQuery(int queryId) throws RemoteException;
}
